package com.cy.mapper;

import com.cy.entity.Address;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface AddressMapper {
    /**
     * 插入用户的收获地址数据
     * @param address
     * @return 收到影响的行数
     */
    Integer insert(Address address);

    /**
     * 统计用户UID收获地址数量
     * @param uid
     * @return
     */
    Integer countByUid(Integer uid);

    /**
     * 根据用户ID查用户收获数据
     * @param uid
     * @return
     */
    List<Address>findByUid(Integer uid);

    /**
     * 根据Aid查询用户地址数据
     * @param aid
     * @return
     */
    Address findByAid(Integer aid);

    /**
     * 根据UID修改用户的收货地址为非默认
     * @param uid
     * @return
     */
    Integer updateNoDefault(Integer uid);

    Integer updateDefaultByAid(
                                @Param("aid") Integer aid,
                               @Param("modifiedUser") String modifiedUser,
                               @Param("modifiedTime") Date modifiedTime);

    /**
     * 根据收获地址的id删除收获地址的数据
     * @param aid
     * @return
     */
    Integer deleteByAid(Integer aid);

    /**
     * 根据用户UID查询最后一次被修改的数据
     * @param uid
     * @return
     */
    Address findLastModified(Integer uid);
}
